# ruff: noqa: D102

"""[tauri::path](https://docs.rs/tauri/latest/tauri/path/index.html)"""

from pathlib import Path
from typing import (
    TYPE_CHECKING,
    final,
)

from pytauri.ffi._ext_mod import pytauri_mod

__all__ = ["PathResolver"]

_path_mod = pytauri_mod.path

if TYPE_CHECKING:

    @final
    class PathResolver:
        """[tauri::path::PathResolver](https://docs.rs/tauri/latest/tauri/path/struct.PathResolver.html)

        # Examples

        ```python
        from pathlib import Path
        from typing import Union

        from pytauri import App, AppHandle, Manager
        from pytauri.path import PathResolver
        from pytauri.webview import WebviewWindow


        def get_resource_dir(manager: Union[App, AppHandle, WebviewWindow]) -> Path:
            path_resolver: PathResolver = Manager.path(manager)
            return path_resolver.resource_dir()
        ```
        """

        def audio_dir(self) -> Path: ...
        def cache_dir(self) -> Path: ...
        def config_dir(self) -> Path: ...
        def data_dir(self) -> Path: ...
        def local_data_dir(self) -> Path: ...
        def desktop_dir(self) -> Path: ...
        def document_dir(self) -> Path: ...
        def download_dir(self) -> Path: ...
        def executable_dir(self) -> Path: ...
        def font_dir(self) -> Path: ...
        def home_dir(self) -> Path: ...
        def picture_dir(self) -> Path: ...
        def public_dir(self) -> Path: ...
        def runtime_dir(self) -> Path: ...
        def template_dir(self) -> Path: ...
        def video_dir(self) -> Path: ...
        def resource_dir(self) -> Path: ...
        def app_config_dir(self) -> Path: ...
        def app_data_dir(self) -> Path: ...
        def app_local_data_dir(self) -> Path: ...
        def app_cache_dir(self) -> Path: ...
        def app_log_dir(self) -> Path: ...
        def temp_dir(self) -> Path: ...

else:
    PathResolver = _path_mod.PathResolver
